package com.bmps.springcloud.insuredmicroservice.repository.accept.coresystem;

import com.bmps.springcloud.insuredmicroservice.model.accept.PersonModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.HashSet;
import java.util.List;

/**
 * @author lyw
 * @date 2019/07/24
 */
@Repository
public interface InsuranceAcceptCoreRepository {
    /**
     * 根据人员列表的五要素获取对应人员的客户号以及理赔和黑名单标识
     *
     * @param personModelList 人员列表
     * @return List<PersonModel>
     */
    List<PersonModel> getPersonCustomerNoList(HashSet<PersonModel> personModelList);

    /**
     * 根据姓名查询是否是黑名单
     *
     * @param name 姓名
     * @return List<PersonModel>
     */
    List<PersonModel> queryBlackByName(@Param("name") String name);

    /**
     * 根据客户号查询是否存在历史在途保单
     *
     * @param customerNo 客户号
     * @return String
     */
    String getHistoryVerificationContno(@Param("customerNo") String customerNo);

    /**
     * 查询是不是存在保盾云和智能核保原因进入人核的保单
     *
     * @param customerNo 客户号
     * @return String
     */
    String queryRiskAndInsurance(@Param("customerNo") String customerNo);

    /**
     * 查询对应的机构是否存在
     *
     * @param agentCom 机构编码
     * @return String
     */
    String queryAgentCom(@Param("agentCom") String agentCom);

    /**
     * 查询是否存在既往加费-1 拒保-4 特约-2
     *
     * @param prtNo      投保书号
     * @param customerNo 客户号
     * @return
     */
    int getSpecialAnnal(@Param("prtNo") String prtNo, @Param("customerNo") String customerNo);


    /**
     * 查询电话号码被不同客户使用次数
     *
     * @param phone 电话号码
     * @return
     */
    Integer queryMobilePhoneUseTimes(@Param("phone") String phone);
}
